#ifndef __APP_VENT_HEAT_H__
#define __APP_VENT_HEAT_H__

#include "common_config.h"
#include "inf_fan.h"
#include "inf_heating_pad.h"

#include <stdbool.h>
#include <stdint.h>

/**
 * @brief 通风加热模式枚举
 */
typedef enum
{
    VENT_HEAT_MODE_OFF      = 0x00, /*!< 关闭通风加热全部功能 */
    VENT_HEAT_MODE_LOW_HEAT = 0x01, /*!< 低档加热模式 */
    VENT_HEAT_MODE_MID_HEAT = 0x02, /*!< 中档加热模式 */
    VENT_HEAT_MODE_HI_HEAT  = 0x03, /*!< 高档加热模式 */
    VENT_HEAT_MODE_LOW_COOL = 0x04, /*!< 低档通风模式 */
    VENT_HEAT_MODE_MID_COOL = 0x05, /*!< 中档通风模式 */
    VENT_HEAT_MODE_HI_COOL  = 0x06, /*!< 高档通风模式 */
    VENT_HEAT_MODE_MAX,
} vent_heat_mode_e;

/**
 * @brief 通风加热系统状态枚举
 */
typedef enum
{
    VENT_HEAT_STATUS_IDLE    = 0, /*!< 空闲状态 */
    VENT_HEAT_STATUS_HEATING = 1, /*!< 加热状态 */
    VENT_HEAT_STATUS_COOLING = 2, /*!< 通风状态 */
    VENT_HEAT_STATUS_FAULT   = 3, /*!< 故障状态 */
} vent_heat_status_e;

/**
 * @brief 通风加热系统配置结构体
 */
typedef struct
{
    // bool     enable_temp_control; /*!< 是否启用温度控制（预留扩展） */
    // uint16_t target_temp;         /*!< 目标温度（预留扩展） */
    // uint16_t temp_tolerance;      /*!< 温度容差（预留扩展） */
    bool enable_interlock; /*!< 是否启用互锁功能 */
} vent_heat_config_t;

/**
 * @brief 通风加热系统结构体
 */
typedef struct
{
    bool               initialized;    /*!< 系统初始化状态 */
    vent_heat_mode_e   current_mode;   /*!< 当前模式 */
    vent_heat_status_e current_status; /*!< 当前状态 */
    vent_heat_config_t config;         /*!< 系统配置 */
    // uint32_t           mode_change_time; /*!< 模式切换时间戳（预留扩展） */
} vent_heat_system_t;

result_e         app_vent_heat_init(void);
result_e         app_vent_heat_set_mode(vent_heat_mode_e mode);
vent_heat_mode_e app_vent_heat_get_mode(void);
void             app_vent_heat_handle(void);

#endif
